/**
 * 
 */
package pruebas.tiendaOl.persistencia.jpa.repositorios;

import iades.fabricaciones.UnidadTrabajo;
import iades.fabricaciones.UnidadTrabajo.Operacion;

import java.util.List;

import javax.inject.Inject;
import javax.persistence.EntityManager;

import pruebas.tiendaOl.dominio.entidades.Cliente;
import pruebas.tiendaOl.dominio.repositorios.RepoCliente;

/** @author ggpollit */
public class RepoCliente_Jpa implements RepoCliente {
//	@Inject
//	private Logger logger;
	@Inject
	private UnidadTrabajo ut;

	@Override
	public Cliente buscarCliente(final String nombre) {
		return ut.ejecutar(new Operacion<Cliente, RuntimeException>() {
			@Override
			public Cliente ejecutarme(UnidadTrabajo ut, EntityManager em) {
				List<Cliente> clientes = em.createQuery("select c from Cliente c where c.nombreUsuario = :nu", Cliente.class)
						.setParameter("nu", nombre).getResultList();
				return clientes.isEmpty() ? null : clientes.get(0);
			}
		});
	}
}
